package com.example.service;

import com.example.common.PageResult;
import com.example.common.Result;
import com.example.dto.SalesRecordDTO;
import com.example.dto.SalesRecordQueryDTO;
import com.example.vo.SalesRecordVO;

import java.util.List;

/**
 * 商品售卖记录Service接口
 */
public interface SalesRecordService {

    /**
     * 添加售卖记录
     *
     * @param salesRecordDTO 售卖记录DTO
     * @return 操作结果
     */
    Result<Void> addSalesRecord(SalesRecordDTO salesRecordDTO);

    /**
     * 分页查询售卖记录
     *
     * @param queryDTO 查询条件
     * @return 分页结果
     */
    Result<PageResult<SalesRecordVO>> getPageList(SalesRecordQueryDTO queryDTO);

    /**
     * 根据ID查询售卖记录详情
     *
     * @param id 售卖记录ID
     * @return 售卖记录详情
     */
    Result<SalesRecordVO> getSalesRecordById(Long id);

    /**
     * 取消售卖记录
     *
     * @param id 售卖记录ID
     * @return 操作结果
     */
    Result<Void> cancelSalesRecord(Long id);

    /**
     * 导出售卖记录
     *
     * @param queryDTO 查询条件
     * @return 售卖记录列表
     */
    Result<List<SalesRecordVO>> exportSalesRecords(SalesRecordQueryDTO queryDTO);

    /**
     * 根据商品ID查询售卖记录
     *
     * @param productId 商品ID
     * @return 售卖记录列表
     */
    Result<List<SalesRecordVO>> getSalesRecordsByProductId(Long productId);

    /**
     * 获取当前店长的售卖记录
     *
     * @return 售卖记录列表
     */
    Result<List<SalesRecordVO>> getMySalesRecords();
} 